package com.atguigu.gulimall.product.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author nicc
 * @version 1.0
 * @className SkuSaveInfoVo
 * @date 2022-09-29 20:54
 */
@NoArgsConstructor
@Data
public class SkuSaveInfoVo {
    /**
     * id
     */
    @JsonProperty("id")
    private Long id;
    /**
     * spuId
     */
    @JsonProperty("spuId")
    private Long spuId;
    /**
     * price
     */
    @JsonProperty("price")
    private BigDecimal price;
    /**
     * skuName
     */
    @JsonProperty("skuName")
    private String skuName;
    /**
     * weight
     */
    @JsonProperty("weight")
    private BigDecimal weight;
    /**
     * skuDesc
     */
    @JsonProperty("skuDesc")
    private String skuDesc;
    /**
     * category3Id
     */
    @JsonProperty("category3Id")
    private Long category3Id;
    /**
     * tmId
     */
    @JsonProperty("tmId")
    private Long tmId;
    /**
     * skuAttrValueList
     */
    @JsonProperty("skuAttrValueList")
    private List<SkuAttrValueListDTO> skuAttrValueList;
    /**
     * skuSaleAttrValueList
     */
    @JsonProperty("skuSaleAttrValueList")
    private List<SkuSaleAttrValueListDTO> skuSaleAttrValueList;
    /**
     * skuImageList
     */
    @JsonProperty("skuImageList")
    private List<SkuImageListDTO> skuImageList;
    /**
     * skuDefaultImg
     */
    @JsonProperty("skuDefaultImg")
    private String skuDefaultImg;

    /**
     * SkuAttrValueListDTO
     */
    @NoArgsConstructor
    @Data
    public static class SkuAttrValueListDTO {
        /**
         * attrId
         */
        @JsonProperty("attrId")
        private Long attrId;
        /**
         * valueId
         */
        @JsonProperty("valueId")
        private Long valueId;
    }

    /**
     * SkuSaleAttrValueListDTO
     */
    @NoArgsConstructor
    @Data
    public static class SkuSaleAttrValueListDTO {
        /**
         * saleAttrValueId
         */
        @JsonProperty("saleAttrValueId")
        private Long saleAttrValueId;
        /**
         * saleAttrValueName
         */
        @JsonProperty("saleAttrValueName")
        private String saleAttrValueName;
        /**
         * baseSaleAttrId
         */
        @JsonProperty("baseSaleAttrId")
        private Long baseSaleAttrId;
        /**
         * saleAttrName
         */
        @JsonProperty("saleAttrName")
        private String saleAttrName;
    }

    /**
     * SkuImageListDTO
     */
    @NoArgsConstructor
    @Data
    public static class SkuImageListDTO {
        /**
         * spuImgId
         */
        @JsonProperty("spuImgId")
        private Long spuImgId;
        /**
         * imgName
         */
        @JsonProperty("imgName")
        private String imgName;
        /**
         * imgUrl
         */
        @JsonProperty("imgUrl")
        private String imgUrl;
        /**
         * isDefault
         */
        @JsonProperty("isDefault")
        private Integer isDefault;
    }
}
